#ifndef __APP_DEVICE_H__
#define __APP_DEVICE_H__

#include "app_buffer.h"
#include "pthread.h"

// 设备结构体
typedef struct
{
    char *fileName;        // 设备文件 蓝牙串口
    int fd;                // 设备文件描述符
    Buffer_t *up_buffer;   // 上行缓冲区
    Buffer_t *down_buffer; // 下行缓冲区
    pthread_t read_thread; // 读线程
    int is_running;        // 运行状态
    long last_write_time;  // 最后一次写入时间
    // 读后处理函数 将读到的数据处理成字符数组格式
    int (*read_post_fun)(char *, int);
    // 写前处理函数 将字符数组处理为需要的格式
    int (*write_pre_fun)(char *, int);
} Device_t;

// 初始化设备
Device_t *app_device_init(char *fileName);

// 启动设备
int app_device_start(void);

// 停止设备
int app_device_stop(void);

#endif /* __APP_DEVICE_H__ */
